1. Field of the Invention
This invention relates generally to network processor devices, and more specifically, to a mechanism for distributing processing across several general purpose processors (i.e., control point processors) and for configuring a network processor so that specific general purpose processors handle specific operations in a large networking environment.
2. Discussion of the Prior Art
FIG. 1 depicts a typical networking configuration 10 including a single General Purpose Processor (GPP) control device 15 controlling many network processor devices 25a, . . . , 25n. A processing bottleneck is often created in the system 10 at the GPP since the GPP handles all special frames (i.e., PPP control frames or unknown frames).
FIG. 2 illustrates a more distributed networking configuration implementing multiple General Purpose Processor control devices 15a, . . . , 15n. In this configuration, in order for a network processor to forward a special frame type to a GPP for processing, each GPP requires protocol stacks for each protocol it must handle since the network processors are not able to decipher how to send a special frame to a specific GPP. A requirement that each GPP have a complete protocol stack for each protocol handled by the Network Processor increases memory requirements and lowers performance.
It would thus be desirable to provide a GPP configuration in a distributed networking environment that obviates the need for provisioning a complete set of protocol stacks for each GPP device.
It is an object of the present invention to provide a mechanism for configuring GPPs in a distributed networking environment to handle specific special frame types and to provide the capability of distributing special frame types to a specific, configured GPP by a network processor.
It is a further object of the present invention to provide an Application Program Interface (API) and method for distributing processing across several general purpose processors (i.e., control point processors) and enabling a network processor to configure which processor handles specific operations.
According to the invention, there is provided a system and method for distributing processing of special data frames received by a network processor (NP) device in a distributed networking environment comprising one or more general purpose control processors (GPP) that control one or more NP devices, the system comprising a configurable table implemented in the NP device for mapping special data frame types received at the NP device with a target address and a target port address associated with a target GPP capable of handling the special frame type, wherein the NP network processor includes mechanism for classifying the received data frames and comparing each frame to entries in the configurable table. The network processing device then forwards the frame to the target GPP provisioned for handling the special data frame type, through a corresponding target port address.
This invention is additionally directed to an application programming interface for configuring the network processor (NP) device operating in a distributed networking environment that includes one or more general purpose control processors (GPP) for controlling one or more NP devices. The interface comprises a mechanism for generating a data structure for input to the NP device, the data structure having one or more entries specifying a special frame type and an associated target address and target port address associated with a GPP capable of handling the frame protocol type; and, a device for generating a customized table from the generated data structure, and inputting the customized table to an NP device memory. The NP device includes a mechanism for identifying a frame type and performing a customized table lookup for redirecting or forwarding the special frame type to an associated GPP through the target port address.
Advantageously, such a method enables a network processor to distribute processing across several general purpose processors (i.e., control point processors) and enables the capability to configure which processor handles specific operations in a large networking environment thus reducing the number of protocol stacks that need to be maintained on each general purpose control processor.